<?php

require_once('DataAccess.php');
require_once('SubElemento.php');

/**
Interface DAO de Unidade. Estes m�todos N�O devem ser chamados diretamente.
Ao inv�s disso devem ser chamados por m�todos da classe Unidade.
*/

class SubElementoDAO
{

      private $database;

      public function SubElementoDAO( )
      {
               $this->database = DataAccess::getConnection();
      }
      
      
      public function Salvar( $subElemento )
      {
      		$consulta = $this->database->Fetch("BEGIN");
		
			if ( $consulta )
    		{   
    			$id        = $subElemento->subElementoId;
      			$descricao = $subElemento->descricao;
      			$naturezaDespesaId = $subElemento->naturezaDespesa->id;
      			      			
               	$consulta = $this->database->Fetch("INSERT INTO t_sub_elemento( t_natureza_despesa_id, sub_elemento_id , descricao )
                                 VALUES ('$naturezaDespesaId','$id' ,'$descricao')");
    			if( $consulta )
           		{
           			$consulta = $this->database->Fetch("COMMIT");
           			return TRUE;
           		}
           		else
           		{
          			$consulta = $this->database->Fetch("ROLLBACK");
           			return FALSE;
           		}
          
    		}
    		else
    		{
    			$consulta = $this->database->Fetch("ROLLBACK");
            	return FALSE;
    		};
      }
      
     public function Carregar( $naturezaDespesa, $subElementoId )
     {
     		$consulta = $this->database->Fetch(" SELECT * FROM t_sub_elemento WHERE t_natureza_despesa_id = '$naturezaDespesa' AND sub_elemento_id = '$subElementoId'");

     		if( $consulta != FALSE && mysql_num_rows( $consulta ) > 0 )
     		{
     			$resultado = $this->database->getRow();
     			$campus = SubElemento::ArrayParaObjetos( $resultado );
     			return $campus[0];
     		}
     		else
     		{
     			return FALSE;
     		}
     }

    
	public function CarregarTodos()
	{
		$consulta = $this->database->Fetch(" SELECT * FROM t_sub_elemento ");
               
		if ( $consulta != FALSE && mysql_num_rows( $consulta ) > 0 )
		{
			$resultado = $this->database->getRow();
			$campi = SubElemento::ArrayParaObjetos( $resultado );
			return $campi;
		}
        else
        {
        	return FALSE;
        }
	}
	
     public function CarregarPorNatureza( $naturezaDespesa)
     {
     		$consulta = $this->database->Fetch(" SELECT * FROM t_sub_elemento WHERE t_natureza_despesa_id = '$naturezaDespesa'");

     		if( $consulta != FALSE && mysql_num_rows( $consulta ) > 0 )
     		{
     			$resultado = $this->database->getRow();
     			$campus = SubElemento::ArrayParaObjetos( $resultado );
     			return $campus;
     		}
     		else
     		{
     			return FALSE;
     		}
     }	

}
?>
